package com.dashuizhuyu.test;

/**
 * 客户端：泛指要使用策略的地方,这里就是我本身了
 *
 * @author dashuizhuyu@foxmail.com
 * @date 2019-12-22 11:00:58
 */
public class Client {

    // 大水煮鱼要回家啦

    public static void main(String[] args) {
        // 先把我所有的策略拿出来
        Context context;

        // 1.心情好，我骑自行车回去
        System.out.println("=======1.心情好，我骑自行车回去=======");
        context = new Context(new ConcreteStrategyA());
        // 我回家了
        context.goHome();

        // 2.心情一般，我坐地铁回去
        System.out.println("=======2.心情一般，我坐地铁回去=======");
        context = new Context(new ConcreteStrategyB());
        // 我回家了
        context.goHome();

        // 3.心情不好，我坐出租车回去，反正公司报销
        System.out.println("=======3.心情不好，我坐出租车回去，反正公司报销=======");
        context = new Context(new ConcreteStrategyC());
        // 我回家了
        context.goHome();


        // 注意，我回家只会选择一种方式，所以，输出的时候，只会输出一种回家方式 ，这里输出全部，只是在说明
        // 如果我下次选择不同的回家方式，是如何进行切换的，
        // 如果我换用不同的回家方式，只需要把 ConcreteStrategyB 换成 ConcreteStrategyC() 就行了，其他的代码
        // 都不需要改动
        // 如果不使用策略模式呢？
    }




}
